CODESYS Math Libraries
はじめに
CODESYS Math Libraries には以下が含まれます マトリックス ライブラリと内部 浮動小数点ツール ライブラリ。ザ・ Matrix
ライブラリは任意の次元の行列とその行列に対する基本的な数学演算をサポートします。次の演算がサポートされています:加算、乗算、線形方程式の求解、反転、行列式の計算です
商品説明
ザル Matrix
ライブラリには、任意の次元の行列を定義するデータ型と、行列に対して基本的な操作を実行する関数が用意されています。
データ型と関数
マトリックスは以下で定義されます。 mtx.Matrix
データタイプ。ザ・ mtx.Matrix
データ型は行列を次のように保存します。 ARRAY
の LREAL
。配列は行優先形式です
基本的な数学演算は、次のように 3 つの行列をもつ関数として提供されます。 VAR_IN_OUT
引数:結果、ソース、ターゲット。たとえば、行列加算用の関数には次のインターフェースがあります
(* Adds two matrices : C := A + B. * A, B, and C must have identical dimensions. * Note: A, B, and C may all be the same matrix. *) FUNCTION AddM : ResultCode VAR_IN_OUT C : Matrix ; (* The result *) A : Matrix ; (* The first summand *) B : Matrix ; (* The second summand *) END_VAR
ライブラリには以下の数学演算が用意されています。
行列の加算 (要素単位):
AddM
行列の減算 (要素単位):
SubM
行列の乗算 (要素単位):
TimesM
行列の除算 (要素単位):
RDivideM
行列のスカラー乗算:
MultMS
行列の乗算:
MultM
マトリックスの転置:
TransposeM
また、行列の初期化、コピー、要素へのアクセスを行うための補助関数もいくつかあります。
でマトリックスを初期化します
ARRAY
値の:InitMatrix
[コピー]
ARRAY
マトリックスへの要素:CopyElems
同じ次元の行列をコピー:
CopyMatrix
単位行列として初期化:
IdentityMatrix
ゼロ行列として初期化:
ZeroMatrix
要素の読み取りと書き込み:
Elem
、SetElem
より複雑な操作も提供されています。
線形方程式を解く
A * X = B
:SolveLU
二次行列を反転:
InvertLU
二次行列の行列式の計算:
DeterminantLU
を決定する
LU
分解 (この分解は上記の 3 つの機能の基礎となります):DecomposeLU
メモリー管理
ユーザーはメモリ管理を担当します。マトリックスはメモリへのポインタで初期化されます (経由 InitMatrix
関数)。場合によっては、ユーザが適切なメモリを用意できることもあります。さらに、補助機能はブロックします MatrixS
、 ColVectorS
、および RowVectorS
一定サイズの配列で行列を初期化するために使用できます。これらは以下を実装しています。 IMatrixAllocator
ユーザーも利用できるインターフェイス。